package com.konsung.ksdc.common.utils;

import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;

/**
 * SharedPreferences工具类
 */
public class PreferenceUtils {

    private static SharedPreferences mSp;

    /**
     * 得到当前对象
     * @param context 上下文
     * @return SharedPreferences
     */
    private static SharedPreferences getSp(Context context) {
        if (mSp == null) {
            mSp = context.getSharedPreferences("ksdc", Context.MODE_PRIVATE);
        }
        return mSp;
    }

    /**
     * 获得boolean的数据,没有时为false
     *
     * @param context 上下文
     * @param key 键
     * @return boolen值
     */
    public static boolean getBoolean(Context context, String key) {
        return getBoolean(context, key, false);
    }

    /**
     * 获得boolean的数据
     *
     * @param context 上下文
     * @param key 键
     * @param defValue :如果没有返回的值
     * @return boolen值
     */
    public static boolean getBoolean(Context context, String key, boolean defValue) {
        SharedPreferences sp = getSp(context);
        return sp.getBoolean(key, defValue);
    }

    /**
     * 设置boolean值
     *
     * @param context 上下文
     * @param key 键
     * @param value 值
     */
    public static void putBoolean(Context context, String key, boolean value) {
        SharedPreferences sp = getSp(context);
        Editor editor = sp.edit();
        editor.putBoolean(key, value);
        editor.commit();
    }

    /**
     * 获得String的数据,没有时为null
     *
     * @param context 上下文
     * @param key 键
     * @return string
     */
    public static String getString(Context context, String key) {
        return getString(context, key, null);
    }

    /**
     * 获得String的数据
     *
     * @param context 上下文
     * @param key 键
     * @param defValue :如果没有返回的值
     * @return string
     */
    public static String getString(Context context, String key, String
            defValue) {
        SharedPreferences sp = getSp(context);
        return sp.getString(key, defValue);
    }

    /**
     * 设置String值
     *
     * @param context 上下文
     * @param key 键
     * @param value 值
     */
    public static void putString(Context context, String key, String value) {
        SharedPreferences sp = getSp(context);
        Editor editor = sp.edit();
        editor.putString(key, value);
        editor.commit();
    }

    /**
     * 获得int的数据,没有时为-1
     *
     * @param context 上下文
     * @param key 键
     * @return 值
     */
    public static int getInt(Context context, String key) {
        return getInt(context, key, -1);
    }

    /**
     * 获得int的数据
     *
     * @param context 上下文
     * @param key 键
     * @param defValue :如果没有返回的值
     * @return 值
     */
    public static int getInt(Context context, String key, int defValue) {
        SharedPreferences sp = getSp(context);
        return sp.getInt(key, defValue);
    }

    /**
     * 设置int值
     *
     * @param context 上下文
     * @param key 键
     * @param value 值
     */
    public static void putInt(Context context, String key, int value) {
        SharedPreferences sp = getSp(context);
        Editor editor = sp.edit();
        editor.putInt(key, value);
        editor.commit();
    }
}
